WIP version of a little roguelike I'm working on.
Sprites are based on Scroll-o-Sprites by Quale-Art.
You are THE BOY and you have entered the DIRE DUNGEON in search of treasure and glory!
Currently, v0.1 only features character and camera movement.
This is Jelly Up! Help our little jelly friend to get to the surface by grabbing oxygen bubbles while dodging enemies.
This was totally a bug but I decided to add Back In Black and some beers.
Enjoy !
this nifty code lets you debug your project. Features it provides are in the codes guide on how to use it~
--super debug v 1.0 --shooting★ --[[ ………………………………………… how-to use ………………………………………… to use this code, check out tab 2 and copy the compressed code. once its coppied, you'll need to put "sdbg()" (without quotes) inside of your _draw() function, at the very bottom. make sure its drawn last. by default, the key to display debug info is the tilde key ( the ` next to the number 1 on standard u.s keyboards). you can change this by simply changing dbg_dbtn. at your init, you can put dbg_dbtn = 't' for example, and then 't' on your keyboard will open the debug info. if you want to adjust the memory location, you can adjust the variable called addr. by default, its 0x5e00. to edit it, do the same as editing dbg_dbtn, just put it in _init(). ( addr = 0x5e01 ) ………………………………………… ★features★ ………………………………………… this code displays the following information: â—† framerate (top-right) ……… â—† cpu usage ……… â—† mem usage/max mem ……… â—† test count (how many times you tested your project since installing this code) ……… â—† mouse info (location, click #) ……… â—† tile flags & id (displays all 8 flags on the tile you're hovering over) ……… â—† color of hovering-pixel (gets the color of the pixel you're currently hovering the mouse over.) ……… â—†pico version ……… â—† uptime (how long the test has been running for) ……… ]] |
Alternatively, you can copy the compressed code directly and just follow instructions from the code displayed above. here's the compressed code that makes the entire thing run.
--code dbg_dbtn = '`' dbt = 7 don = false cc = 8 mc = 15 addr = 0x5e00 function dtxt(txt,x,y,c) print(txt, x,y+1,1) print(txt,x,y,c) end function init_dbg() poke(0x5f2d, 1) test_num = peek(∧addr) or 0 poke(∧addr, test_num+1) end dbtm = 0 dbu = {0,0,0} function sdbg() if stat(31) == dbg_dbtn then if don==false then don=true else don=false end end if don != true then return end local c=dbt local cpu=stat(1)*100 local mem=(stat(0)/100)/10*32 local fps=stat(7) local u=stat(7)..'' local _x=124-(#u*4) local du = {dbu[1],dbu[2],dbu[3]} dtxt(u, 124-(#u*4), 1, c) u=cpu..'%' dtxt(u, 124-(#u*4), 7, c) u=mem..'kb /' dtxt(u, 124-(#u*4)-32, 13, c) dtxt('31.25kib', 128-33, 13, c) dtxt(du[3]..'h', 124-44, 128-9, c) dtxt(du[2]..'m', 124-28, 128-9, c) dtxt(du[1] ..'s', 124-12, 128-9, c) dtxt('cpu', 1, 7, c) dtxt('mem', 1, 13, c) dtxt('pico-'..stat(5), 1, 128-15, c) dtxt('uptime', 1, 128-9, c) dbtm+=1 dbu[1] = flr(dbtm/stat(8)) dbu[2] = flr(dbu[1]/60) dbu[3] = flr(dbu[2]/60) dtxt('test number: '..peek(0x5e00), 0, 24, c) dtxt('mouse: {'..stat(32)..','..stat(33)..'}\nbitmask: '..stat(34), 0, 30, c) draw_dbg_info(c) end function draw_dbg_info(c) local m = {stat(32)/8, stat(33)/8} local tile=fget(mget(m[0],m[1]), 0) dtxt('tile flags', 0, 6*8, c) local res = {} res[1] = fget(mget(m[1],m[2]), 0) res[2] = fget(mget(m[1],m[2]), 1) res[3] = fget(mget(m[1],m[2]), 2) res[4] = fget(mget(m[1],m[2]), 3) res[5] = fget(mget(m[1],m[2]), 4) res[6] = fget(mget(m[1],m[2]), 5) res[7] = fget(mget(m[1],m[2]), 6) res[8] = fget(mget(m[1],m[2]), 7) dtxt('{'.. blton(res[1]) ..','..blton(res[2]) ..','..blton(res[3]) ..','..blton(res[4]) ..'\n '..blton(res[5]) ..','..blton(res[6]) ..','..blton(res[7]) ..','..blton(res[8]) ..'}\ntile-id: '..mget(m[1],m[2]), 0, 6*9, c) print('color: '..pget(m[1]*8,m[2]*8), 0, 6*12, max(pget(m[1]*8,m[2]*8), 1)) circ(stat(32), stat(33), 3, c) circfill(stat(32), stat(33),1, c) end function blton(v) return v and 1 or 0 end |
This is a quick little cart to let you see the difference between the editor color palette and the palette available through code. I hope it's useful! :)
A simple game I made to try and get to grips with Voxatron. I'm so, so glad I finally managed to get into this, after it inspired me so much in its early years but I found the development tools a bit difficult to figure out (even quite recently!).
Having since bought in heavily to PICO-8 and made some 40 games with it, I decided to come back around and make a proper go of it when Voxatron 0.3.5 hit, and I'm really happy that I did. This is entirely programmed in one script inside the main room, with one (short and boring) tune in the background. No precreated assets or anything like that. Which might make it interesting for you to explore!
Anyway here's my silly game about being a weird gardening alien with a weird ship in a weird garden that has
a bottomless pit in the middle. You have to clear all those nasty rocks out!!!
Controls:
(in menu)
Z: start game
(in game)
Z [hold]: activate tractor beam to suck up rocks under your ship
X [tap]: dump a rock, ideally into the pit
(in 'all done' screen)
Z + X together [tap]: back to title
When you've dumped all the rocks into the pit, you'll get a nice 'all done' screen and an opportunity to replay. That's it! Have fun messing around in this little world!
itch.io page: here.
#onegameamonth January 2019
You have to retrieve the Solar Orb , in order to repair the sun , but beware Darknesses, before they grow and block every possible path.
Controls :
Arrow key : Move
C/O : Run
V/X : Teleport
I know pcall isn't part of pico 8, which means you can't do regular Lua exception handling. I noticed though that coroutines swallow errors, and can return the error message. So I leveraged that to create a C#/Java style try catch finally function.
function try(t,c,f) local co=cocreate(t) local s,m=true while s and costatus(co)!="dead" do s,m=coresume(co) if not s then c(m) end end if f then f() end end cls() try(function() print("hi ") --print("hi " .. nil) end, function(e) print("an error occurred:\n"..e) end, function() print("finally") end) |
To use just use it like above. The finally function is optional, so most people will probably use it like this:
try(function() -- code end, function(e) -- exception handler end) |
Enjoy, and if you like it feel free to kick a buck to my Patreon.
In the code editor, if you place the cursor at the very first character in the file, the delete key does nothing.
Expected behavior: It should delete the character under the cursor.
There seem to be some bugs with the parsing of an escaped backslash:
So, two issues:
- The syntax highlighter doesn't stop parsing the line as a string if it encounters two backslashes in a row, although it will run without problems
- ...except when used as an argument to the ? shorthand function, which will give an error
It's not in the screenshot, but if there are any trailing characters after the double backslash, the syntax highlighter will be happy again.
Taken from a discord's discussion, algorithm provided by @ skaarjslayer: http://itinerantgames.tumblr.com/post/78592276402/a-2d-procedural-galaxy-with-c
And also reference to: https://en.wikipedia.org/wiki/Archimedean_spiral
POC implementation of mashup between Tetris® and match-3 genre.
It's remake of an old game I played as a kid on one of the "Brick Game" handheld consoles.
Btw. if anyone knows what's the original name of the game, or what exactly console it is on, please write a comment - I cannot find the original game like nowhere - my google-foo failed on this one :D
Hello,
i have a nes mini controller that i'd like to use with pico8.
I bought a mayflash "wii classic controller adapter" to plug the controller in usb.
The buttons are not correctly mapped by PICO8.
DPAD UP is mapped on pico8 button 3
DPAD DOWN is mapped on pico8 button 1
DPAD RIGHT is mapped on 0
DPAD LEFT is NOT mapped
BUTTON A and B are both mapped to button 5
I use the code over there to test the controller mapping: http://pico-8.wikia.com/wiki/Controllers
I decided to create my own controller mapping string using SDL2 gamepad tool. I read somewhere that i had to configure the left joystick to get it to work in pico8 but i wasn't successul. Putting this mapping in the sdl_controllers.txt file
03000000791d00000103000000000000,Dual Box WII,platform:Windows,x:b1,y:b2,-leftx:b15,+leftx:b13,-lefty:b12,+lefty:b14,
gave me the same result as before.
One thing i find odd is that in the log file i can read:
Reading controller mappings: C:/Users/USER/AppData/Roaming/pico-8/sdl_controllers.txt
added controller mapping: 03000000791d00000103000000000000,Dual Box WII,platform:Windows,x:b1,y:b2,-leftx:b15,+leftx:b13,-lefty:b12,+lefty:b14,
searching for joysticks
found 2 joysticks
Unmapped Joystick 0: Dual Box WII
Number of Axes: 4
Number of Buttons: 16
Number of Balls: 0
Unmapped Joystick 1: Dual Box WII
Number of Axes: 4
Number of Buttons: 16
Number of Balls: 0
ok
which make it seems like pico8 is not taking the mapping into account, "Unmapped Joystick".
Thanks for your help!
A PICO-8 remix of Resurrections from the Celeste OST.
Repeating parts are shortened for memory reasons.
Enjoy!
The Growing Collection of Raspberry's...
And I Made One Into a Pi-Co
Except the only problem is...
I can't seem to figure out how to use get it online. It boots right into Pico 8, and was the simplest process I've ever followed for a Pi project. Not even any image writing, just pasting files onto the SD card, which was a first for me. The image/process I followed is here and it works amazingly otherwise. If anyone has any suggestions as to how to alter the boot code (which is open source and listed on Guillermo's github, link is on the same site I already linked to), I'd really appreciate the help!
(Ps, the history of magic book is my attempt at researching "real magic" to help bring some authenticity into an alternate history DND style campaign I'm working on. It is...actually pretty much a very dull book honestly, I was hoping it would be a bit different than it is.)
A tiny musical loop. While it's not particularly pleasant to listen to, I think making it helped me learn a lot about how Pico-8 music works.
Hey everyone, I have a 3d printer now. I'm currently one step closer to being able to release a final product to the public now that I can actually manufacture the console myself, I still have a bit of work to do on the cartridge system but that's for a later update. Anyways I'll be posting print pictures in a couple days (assuming I have time to put this thing together). Side tangent here, I am so incredibly happy that I finally got my own 3d printer. I've been wanting one for 3 years and now that it is currently sitting right next to me its such a surreal moment.
Massive WIP, but I thought I'd share.
My daughter is massively into FNaF, so I hear a lot about it, and thought a demake would be a good learning experience.
Directional buttons control the doors/lights and show how much power you're using.
Clock in the upper-right counts to 12 PM (which is technically wrong, but good enough for testing)
At 12, a "night over" message appears.
That's all it does for now.
Next will be adding the power supply/usage mechanic.
Then cameras, then I'll populate the pizzeria!
My goal is to come as close to 1:1 with the first game as Pico-8 will allow.
Any input is welcome and encouraged.